Gelesene Dateien werden zunächst serialisiert in den Typ „AMIC.ProduktionsInterface.Produktion“ und dann an die Methode „VerarbeiteRueckMeldung“ der Klasse „ProduktionsAenderung“ übergeben.
XmlSerializer ser;
StreamReader reader = null;
Produktion prod = null;
Encoding enc = Encoding.GetEncoding("ISO-8859-1");
try
{
reader = new StreamReader(filename);
ser = new XmlSerializerFactory().CreateSerializer(typeof(Produktion));
prod = (Produktion)ser.Deserialize(reader);
reader.Close();
}
finally
{
if (reader != null)
{
reader.Close();
}
}
//Nur weiter, wenn eine Produktionsänderung erkannt wurde
if (prod == null)
{
return;
}
int bedienerMand = D.GetExecuteScalar<int>(-1, "select bedienerid from bedienerstamm where BedienerKurz = 'MAND'");
ProduktionsAenderung pa = new ProduktionsAenderung();
pa.VerarbeiteRueckMeldung(prod, bedienerMand);
Zu Exportierende Daten werden zunächst serialisiert und dann in eine Datei geschrieben
ProduktionsExport pe = new ProduktionsExport();
Produktion prod = pe.ExportData(v_id, ProdStatus.Rezept);
XmlSerializer ser;
XmlTextWriter xmlTextWriter = null;
string XML = "";
MemoryStream ms = null;
Encoding enc = Encoding.GetEncoding("ISO-8859-1");
try
{
ms = new MemoryStream();
xmlTextWriter = new XmlTextWriter(ms, enc);
ser = new XmlSerializerFactory().CreateSerializer(typeof(Produktion));
ser.Serialize(xmlTextWriter, prod);
//Memorystream füllen
ms = (MemoryStream)xmlTextWriter.BaseStream;
//XML als String ermitteln
ms.Seek(0, SeekOrigin.Begin);
XML = enc.GetString(ms.ToArray());
}
finally
{
if (ms != null)
{
ms.Close();
}
}
///Es muss ein XML geschrieben worden sein
if (string.IsNullOrEmpty(XML))
{
return;
}
//String wegschreiben.
StreamWriter sw = null;
try
{
sw = new StreamWriter(Path.Combine(exportPfad, "parts_"+v_id.ToString()+".xml"), false, Encoding.GetEncoding("ISO-8859-1"));
sw.Write(XML);
sw.Flush();
}
finally
{
if (sw != null)
{
sw.Flush();
sw.Close();
}
}